// .txt

beginzonescript;

variables;

short crime_tolerance = 4;
short last_abil;
short i;
short cutscene = 0;
short mehken_nice = 0;

body;

beginstate INIT_STATE;
	sf(78,21,0);
	sf(78,22,0);
	
	set_name(52,"Steen");
	set_name(53,"Incantatrix Seling");
	set_name(54,"Commander Kiley");
	set_name(55,"Schmader");
	set_name(56,"Mudede");
	set_name(57,"Guardian Savage");
	set_boss_level(57,2);
	set_name(61,"Visiting Official");
	set_name(62,"Visiting Official");
	set_name(63,"Visiting Official");

	set_name(23,"Akhari Blaze");

	add_range_to_group(8,15,1);
	add_range_to_group(16,22,2);
	set_level(1002,30);
	set_name(1002,"Citadel Defender");
	
	add_range_to_group(32,39,3);
	set_name(1003,"Dome Elite Defender");
	set_level(1003,32);
	
	set_name(48,"Guardian Malif");
	set_level(48,32);
	set_boss_level(48,2);

	//if (get_sdf() > 0) {
		//make_zone_hostile();
		//}

	last_abil = get_current_tick();
	
	set_crime_tolerance(crime_tolerance);
	
	if (gf(60,9) >= 15)
		sf(78,4,1);
		else sf(78,4,0);
		
	if ((gf(100,23) > 0) && (gf(78,8) == 0))
		sf(78,8,2);
	if (gf(78,6) == 2)
		sf(78,6,1);
		
	if (gf(78,4) == 0) { // shaper mode
		erase_char(23);
		erase_char(28);
		erase_char(29);
		erase_char(30);
		erase_char(31);

		erase_char(40);
		erase_char(41);
		erase_char(42);
		erase_char(43);
		erase_char(44);
		erase_char(45);
		erase_char(46);
		erase_char(47);
		erase_char(48);

		}
		else { // rebel mode
			make_zone_hostile();
			set_attitude(23,3);
			set_attitude(28,3);
			set_attitude(29,3);
			set_attitude(30,3);
			set_attitude(31,3);


			kill_object(146,1);
			set_terrain(9,38,0);
			set_terrain(9,40,0);

			erase_char(52);
			erase_char(54);
			erase_char(55);

			erase_char(58);
			erase_char(59);
			erase_char(60);
			
			erase_char(61);
			erase_char(62);
			erase_char(63);
			}
	break;

beginstate EXIT_STATE;

break;

beginstate START_STATE;
	if ((gf(78,4) > 0) && (gf(100,5) > 2)) {
		// no win
		begin_talk_mode(4);
		}
	
	if (gf(78,5) > 1)
		sf(78,14,1);
		
	// clear zone?
	if ((zone_clear(ME) == FALSE) && ((get_flag(78,14) > 0) || (gf(79,1) > 0))) {
		clear_zone(ME);	
		}
		
	if ((get_crime_level() >= crime_tolerance) && (get_sdf(78,4) == 0)) {
		// no win
		begin_talk_mode(5);
		}

	 if (gf(78,4) == 0) {
		if (get_ran(1,0,100) < 10)
			give_char_text_bubble(52,"Be patient!");
		if (get_ran(1,0,100) < 10)
			give_char_text_bubble(52,"I'm coming.");
		if (get_ran(1,0,100) < 10)
			give_char_text_bubble(52,"Drinks up.");
		if (get_ran(1,0,100) < 10)
			give_char_text_bubble(52,"Meat's ready.");
		if (get_ran(1,0,100) < 10)
			give_char_text_bubble(53,"I need more magic.");
		if (get_ran(1,0,100) < 10)
			give_char_text_bubble(53,"I'd like to teach.");
		if (get_ran(1,0,100) < 10)
			give_char_text_bubble(53,"Potions. Always potions.");
		if (get_ran(1,0,100) < 10)
			give_char_text_bubble(55,"An honor!");
		if (get_ran(1,0,100) < 10)
			give_char_text_bubble(55,"This is a humble shop.");
		if (get_ran(1,0,100) < 10)
			give_char_text_bubble(55,"I humbly greet you.");
		if (get_ran(1,0,100) < 10)
			give_char_text_bubble(55,"Humble.");
		if (get_ran(1,0,100) < 10)
			give_char_text_bubble(56,"What a tangle.");
		if (get_ran(1,0,100) < 10)
			give_char_text_bubble(56,"A new metal?");
		if (get_ran(1,0,100) < 10)
			give_char_text_bubble(56,"A new design?");
		if (get_ran(1,0,100) < 10)
			give_char_text_bubble(56,"It must work.");
		if (get_ran(1,0,100) < 10)
			give_char_text_bubble(56,"Need a new anvil.");
		if (get_ran(1,0,100) < 10)
			give_char_text_bubble(57,"Leave me.");
		if (get_ran(1,0,100) < 10)
			give_char_text_bubble(57,"I will not aid you.");
		if (get_ran(1,0,100) < 10)
			give_char_text_bubble(57,"You are warped.");
		if ((get_ran(1,0,100) < 20) && (gf(78,5) == 0))
			give_char_text_bubble(54,"You have a meeting.");
		if ((get_ran(1,0,100) < 20) && (gf(78,5) == 0))
			give_char_text_bubble(54,"The grove is northwest.");
		if (get_ran(1,0,100) < 10)
			give_char_text_bubble(61 + get_ran(1,0,2),"How can I get in?");
		if (get_ran(1,0,100) < 10)
			give_char_text_bubble(61 + get_ran(1,0,2),"Need to see them.");
		if (get_ran(1,0,100) < 10)
			give_char_text_bubble(61 + get_ran(1,0,2),"So hard to get in.");
		if (get_ran(1,0,100) < 10)
			give_char_text_bubble(61 + get_ran(1,0,2),"Who do I know?");
		if (get_ran(1,0,100) < 10)
			give_char_text_bubble(61 + get_ran(1,0,2),"I'll slip them a message.");

		}

	if (gf(78,5) == 1) {
		if (cutscene == 1) {
			mehken_nice = 1;
			if ((gf(100,3) == 2) || (gf(100,4) == 2))
				mehken_nice = 0;
			cutscene = 2;
			spawn_creature(56);
			spawn_creature(57);
			spawn_creature(58);
			give_char_text_bubble(64,"You're here at last.");
			begin_talk_mode(7);
			}
		else if (cutscene == 2) {
			move_to_loc(0,7,9);
			move_to_loc(1,6,10);
			move_to_loc(2,8,10);
			move_to_loc(3,7,11);
			move_to_loc(4,5,11);
			move_to_loc(5,9,11);
			move_to_loc(6,6,12);
			move_to_loc(7,8,12);
			shift_view_to_char(pc_num());
			
			
			if (cutscene_can_proceed()) {
				give_char_text_bubble(64,"");
				set_facing(1000,7);
				shift_view_to_char(pc_num());
				cutscene = 3;
				}
			}
		else if (cutscene == 3) {
			cutscene = 4;
			}
		else if (cutscene == 4) {
			cutscene = 5;
			if (mehken_nice) {
				activate_hidden_group(10);
				add_range_to_group(67,71,7);
				set_name(1007,"Loyalist Assassin");
				set_boss_level(1007,2);
				set_level(1007,30);
				force_char_status(1007,0,20);
				force_char_status(1007,1,20);
				force_char_status(1007,8,20);
				set_level(71,33);
				set_name(71,"Kara");
				set_new_abil(1007,11);
				
				set_foe_target(67,random_group_member(0));
				set_foe_target(68,random_group_member(0));
				set_foe_target(69,random_group_member(0));
				set_foe_target(70,random_group_member(0));
				set_foe_target(71,random_group_member(0));
				
				talk_no_exit(50);
				}
				else {
					talk_no_exit(70);
					}
			}
		else if (cutscene == 5) {
				sf(78,5,2);
				cutscene = 0;

				toggle_cutscene(0);
				shift_view_to_char(pc_num());
				
			}

			
		}
		
	//if (((is_combat()) && (tick_difference(last_abil,get_current_tick()) > 0)) || ((is_group()) && (tick_difference(last_abil,get_current_tick()) > 5))) {
	//	last_abil = get_current_tick();
	//	}
break;


beginstate 10;
	if ((gf(78,11) == 0) && (gf(78,14) == 0) && (gf(78,4) == 0)) {
		sf(78,11,1);
		begin_talk_mode(12);
		}
break;

beginstate 11;
	if (gf(78,4) == 1)
		sf(78,21,1);
break;

beginstate 12;
	if (gf(78,4) == 1) {
		sf(78,22,1);
		if (char_ok(57))
			alert_char(57);
		}
break;

beginstate 13;
break;

beginstate 14;
break;

beginstate 15;
	if ((gf(78,4) == 0) && (gf(78,5) == 0) && (party_near_nav(2,13))) {
		cutscene = 1;
		sf(78,5,1);
		sf(78,10,1);
		char_clear_action(1000);
		toggle_cutscene(1);
		}
break;

//	print_str("");
//	set_terrain_string_range(".",3);
//	set_terrain_string_range("The sign says - .",3);
